<?php
/**
 * Created by PhpStorm.
 * User: 47926
 * Date: 2018/10/1
 * Time: 22:51
 */

namespace app;
use \think\Controller;
use \think\Cache;

class Base extends Controller
{
    public function __construct()
    {
        parent::__construct();
        define('TIME',time());
        define('IP',request()->ip());

        //是否手机版访问
        define('IS_MOBILE',$this->is_mobile());

        //当前完整URL
        $url_this = ishttps().$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
        define('URL_THIS',$url_this);

        define('MODULE',strtolower(request()->module()));
        define('CONTROLLER',strtolower(request()->controller()));
        define('ACTION',strtolower(request()->action()));




    }



    private function is_mobile(){
        //针对百度竞价后台的移动端统计代码检测不到的问题进行解决【未考虑到百度更换IP段的情况】
        if(strpos($_SERVER['HTTP_HOST'],'m.') === 0 && !empty($_SERVER['REMOTE_ADDR']) && strpos($_SERVER['REMOTE_ADDR'],'180.149.130.') === 0){
            return true;
        }

        // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
            return true;
        }
        // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
        if (isset ($_SERVER['HTTP_VIA'])){
            if(stristr($_SERVER['HTTP_VIA'], "wap")){
                return true;
            }
        }
        //判断手机发送的客户端标志,兼容性有待提高
        if (isset ($_SERVER['HTTP_USER_AGENT'])){
            $clientkeywords = [
                'nokia',
                'sony',
                'ericsson',
                'mot',
                'samsung',
                'htc',
                'sgh',
                'lg',
                'sharp',
                'sie-',
                'philips',
                'panasonic',
                'alcatel',
                'lenovo',
                'iphone',
                'ipod',
                'blackberry',
                'meizu',
                'android',
                'Android',//
                'netfront',
                'symbian',
                'ucweb',
                'windowsce',
                'palm',
                'operamini',
                'operamobi',
                'openwave',
                'nexusone',
                'cldc',
                'midp',
                'wap',
                'mobile',//
                'Mobile'
            ];
            // 从HTTP_USER_AGENT中查找手机浏览器的关键字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))){
                return true;
            }
        }
        // 协议法
        if (isset ($_SERVER['HTTP_ACCEPT'])){
            // 如果只支持wml并且不支持html那一定是移动设备
            // 如果支持wml和html但是wml在html之前则是移动设备
            if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))){
                return true;
            }
        }
        return false;
    }




}